软考真题
第4题
【说明】
下面程序运行时,对输入的表达式进行计算并输出计算结果。设表达式由两个整数和一个运算符(+或-)构成,整数和运算符之间以空格分隔,运算符可以出现在两个整 数之前、之间或之后,整数不超过4位,输入的两个整数和运算符都用字符串表示。

例如,输入分别为“25+7”、“+25 7”、“25 7+”时,输出均为“25 + 7 = 32”。

【C代码】


#include
int str2int(char *s);
//将数字字符串转换为整数
int isOperator(char *str);
//判断字符串的开头字符是否为运算符
void cal(char op, char a[ ], charb[ ]);
//将数字串转化为对应整数后进行op所要求的计算
void solve(char a[ ],char b[ ],char c[ ]);
int main () {
	char a[10],b[10], c[10];
	scanf(’’%s%s%s’’,a,b,c);
	//输入数据的有效性检测略,下面假设输入数据有效、正确 
	Solve(a,b,c);
	Return 0;
}
int str2int(char *s) {
	int val = 0;
	while (*s) {
		val = (1) + (*s - '0');
		//将数字字符串转换为十进制整数
		(2) ;
		//令字符指针指向下一个数字字符
	}
	return val;
}
int isOperator(char *str) {
	return (*str ==‘+’|| *str ==‘-’);
}
void cal( char op, char a[ ], char b[]) {
	switch(op) {
		case ‘+’:
		printf(” %s + %s = %d”,a,b,str2int(a)+str2int(b));
		break;
		case ‘-’:
		printf("%s - %s = %d ” ,a,b,str2int(a)-str2int(b)); 
break;
}
}
void solve(char a[ ],char b[ ],char c[ ])
{//解析输入的3个字符串,输出表达式及计算结果
if (isOperator(a)) { //运算符在两个整数之前
cal( (3) ); 
}
else if(isOperator(b)) { //运算符在两个整数之间
cal( (4) ); 
}
else { //运算符在两个整数之后 
cal( (5) );
}
}

【问题:4.1】阅读以下说明和C代码,填写程序中的空(1)~ (5),将解答写入答题纸的对应栏内。
2019年 上半年 下午试卷 案例
正确答案:
你的答案:
请先在App中激活(应用市场搜“软考真题”)
知识点:
试卷:
2019年 上半年 下午试卷 案例

笔记

请先在App中激活(应用市场搜“软考真题”)

2019-10-23


请先在App中激活(应用市场搜“软考真题”)

2019-11-09


小何

请先在App中激活(应用市场搜“软考真题”)

2020-08-19


请先在App中激活(应用市场搜“软考真题”)

2019-10-23


Inor烙

请先在App中激活(应用市场搜“软考真题”)

2020-11-01


向南

请先在App中激活(应用市场搜“软考真题”)

2022-11-04


答题卡
加油
纠错
得分:0